home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / x / volume7 / xdvi / patch9.1 next >
Encoding:
Internet Message Format  |  1990-05-17  |  54.6 KB

  1. Path: uunet!snorkelwacker!apple!sun-barr!newstop!sun!guinness.ias.edu.edu.
  2. From: vojta@guinness.ias.edu.edu. (Paul A Vojta)
  3. Newsgroups: comp.sources.x
  4. Subject: v07i052: xdvi (dvi previewer), Patch9, Part01/02
  5. Message-ID: <135891@sun.Eng.Sun.COM>
  6. Date: 17 May 90 20:36:08 GMT
  7. Sender: news@sun.Eng.Sun.COM
  8. Lines: 1727
  9. Approved: argv@sun.com
  10.  
  11. Submitted-by: vojta@guinness.ias.edu.edu. (Paul A Vojta)
  12. Posting-number: Volume 7, Issue 52
  13. Archive-name: xdvi/patch9.1
  14. Patch-To: xdvi: Volume 3, Issues 37-39
  15. Patch-To: Volume 4, Issue 44 (xdvi, Patch4)
  16. Patch-To: Volume 4, Issue 96 (xdvi, dvi previewer, Patch5)
  17. Patch-To: Volume 5, Issue 35 (xdvi, dvi previewer, patch 6, part 1/2)
  18. Patch-To: Volume 5, Issue 36 (xdvi, dvi previewer, patch 6, part 2/2)
  19. Patch-To: Volume 6, Issue  5 (xdvi, Patch7)
  20. Patch-To: Volume 6, Issue 49 (xdvi, dvi previewer, patch 8)
  21.  
  22. Here is patch 9 for xdvi.  Mostly it fixes bugs and omissions, such as the -bg
  23. option when compiled with NOTOOL.  It removes the obsolete '=' and '#' options
  24. under X11, because of a conflict with emacs.  And, it includes more VMS related
  25. files:
  26.     XDVI.RNH    VMS help file, written by siemsen@sol.usc.edu
  27.     README.VMS    VMS installation file, written by
  28.             allendorf@iowasp.physics.uiowa.edu
  29.  
  30. This patch also fixes a problem which caused xdvi to dump core when redrawing
  31. the screen after changing the shrink factor.  Thanks to mlm@cs.brown.edu for
  32. help in pinning this one down.
  33.  
  34. And finally, the reason this patch is so long is that lines like
  35.     #else TOOLKIT
  36. have been changed to
  37.     #else /* TOOLKIT */
  38. in order to comply with ANSI C.
  39.  
  40. In case the patches relating to xdvi_man.sed are rejected, I would like
  41. to remind those that are not in the habit of reading these header messages
  42. that the message attached to Patch 8 requested that you rename xdvi.man.sed
  43. to xdvi_man.sed.
  44.  
  45. --Paul Vojta, vojta@guinness.ias.edu
  46.  
  47. --- cut here ---
  48. diff -cr old/AUTHOR new/AUTHOR
  49. *** old/AUTHOR    Mon May  7 18:48:12 1990
  50. --- new/AUTHOR    Fri May  4 21:35:53 1990
  51. ***************
  52. *** 9,23 ****
  53.       Jeffrey Lee, U of Toronto
  54.       Donald Richardson, Clarkson Univ.
  55.   At the present time, the person to send bug reports to is Paul Vojta,
  56. -     vojta@guinness.ias.edu    (temporary; valid through May '90)
  57.       vojta@math.berkeley.edu.
  58.   
  59.   In addition to the various comp.sources.x archives, current versions of this
  60. ! program can also be obtained via anonymous ftp from the following locations:
  61.       expo.lcs.mit.edu    [18.30.0.212]    file contrib/xdvi.shar.Z
  62. !     ucbvax.berkeley.edu    [128.32.149.36]    file pub/tmp/xdvi.shar.Z
  63. !     charon.mit.edu        [18.80.0.13]    file pub/vxdvi.shar.Z
  64. ! In general, ucbvax will hold the newest version, and charon may be a bit out
  65. ! of date.
  66.   
  67. ! Paul Vojta, 13 March 1989.
  68. --- 9,20 ----
  69.       Jeffrey Lee, U of Toronto
  70.       Donald Richardson, Clarkson Univ.
  71.   At the present time, the person to send bug reports to is Paul Vojta,
  72.       vojta@math.berkeley.edu.
  73.   
  74.   In addition to the various comp.sources.x archives, current versions of this
  75. ! program can also be obtained via anonymous ftp from the following location:
  76.       expo.lcs.mit.edu    [18.30.0.212]    file contrib/xdvi.shar.Z
  77. ! To ease the load on expo, you may also check other X archives, for example:
  78. !     gatekeeper.dec.com    [16.1.0.2]    file pub/X11/contrib/xdvi.shar.Z
  79.   
  80. ! Paul Vojta, 4 May 1990.
  81. diff -cr old/README new/README
  82. *** old/README    Mon May  7 18:48:18 1990
  83. --- new/README    Mon May  7 19:05:35 1990
  84. ***************
  85. *** 177,181 ****
  86. --- 177,184 ----
  87.      21.  Replaced -pagewidth and -pageheight options with -paper.
  88.   --  Patchlevel 8:  --
  89.      22.  Added compatibility for X11R4 and VMS.  Fixed up alignment of rules.
  90. + --  Patchlevel 9:  --
  91. +    23.    Removed obsolete '#' and '=' options from the X11 version:  they
  92. +     interfere with emacs.
  93.   
  94.   Paul Vojta, vojta@math.berkeley.edu
  95. diff -cr old/README.VMS new/README.VMS
  96. *** old/README.VMS    Mon May  7 18:51:44 1990
  97. --- new/README.VMS    Wed May  9 22:18:56 1990
  98. ***************
  99. *** 0 ****
  100. --- 1,375 ----
  101. + NAME
  102. + ----
  103. + XDVI - DVI Previewer for VAX VMS systems running the DECWindows software.
  104. + SYNOPSIS
  105. + --------
  106. +    XDVI [+[page]] [-s shrink] [-density density] [-p pixels] [-l] [-rv]
  107. +         [-bw width] [-fg color] [-bg color] [-hl color] [-bd color] [-cr color]
  108. +         [-margins inches] [-sidemargin inches] [-topmargin inches]
  109. +         [-paper papertype] [-mgs[n] size] [-altfont font] [-thorough] [-copy]
  110. +         [-geometry geometry] [-icongeometry geometry] [-iconic]
  111. +         [-display display] dvi_file
  112. + DESCRIPTION
  113. + -----------
  114. +    XDVI is a program which runs under the DECWindows system. It is used to
  115. +    preview DVI files, such as those produced by TeX and LaTeX.
  116. +    XDVI has the capability of displaying the file reduced by various (integer)
  117. +    factors, and also has a "magnifying glass" which allows one to see a small
  118. +    part of the unshrunk image momentarily.
  119. +    Before displaying any page or part thereof, XDVI checks to see if the DVI
  120. +    file has changed since the last time it was displayed.  If this is the case,
  121. +    XDVI will reinitialize itself for the new DVI file.  For this reason,
  122. +    exposing parts of the XDVI window while TeX is running should be avoided.
  123. +    This feature allows you to preview many versions of the same file while
  124. +    running XDVI only once.
  125. + OPTIONS
  126. + -------
  127. +    In addition to specifying the .DVI file (with or without the .DVI), XDVI
  128. +    supports the following command line options.  If the option begins with a "+"
  129. +    instead of a "-", the option is restored to its default value.  By default,
  130. +    these options can be set via the resource names given in parentheses in the
  131. +    description of each option.
  132. +    +<page>               Specifies the first page to show.  If + is given
  133. +                          without a number, the last page is assumed; the first
  134. +                          page is the default.
  135. +    -s <shrink>           (.shrinkFactor)  Defines the initial shrink factor.
  136. +                          The default value is 3.
  137. +    -density <density>    (.densityPercent)  Determines the density used when
  138. +                          shrinking bitmaps for fonts.  A higher value produces a
  139. +                          lighter font.  The default value is 40.
  140. +    -p <pixels>           (.pixelsPerInch)  Defines the size of the fonts to use,
  141. +                          in pixels per inch.  The default value is 300.
  142. +    -l                    (.listFonts)  Causes the names of the fonts used to be
  143. +                          listed.
  144. +    -rv                   (.reverseVideo)  Causes the page to be displayed with
  145. +                          white characters on a black background, instead of vice
  146. +                          versa.
  147. +    -bw <width>           (.borderWidth)  Specifies the width of the border of
  148. +                          the window.
  149. +    -borderwidth <width>  Same as -bw.
  150. +    -fg <color>           (.foreground)  Determines the color of the text
  151. +                          (foreground).
  152. +    -foreground <color>   Same as -fg.
  153. +    -bg <color>           (.background)  Determines the color of the background.
  154. +    -background <color>   Same as -bg.
  155. +    -hl <color>           (.highlight)  Determines the color of the page border.
  156. +                          The default is the foreground color.
  157. +    -bd <color>           (.borderColor)  Determines the color of the window
  158. +                          border.
  159. +    -bordercolor <color>  Same as -bd.
  160. +    -cr <color>           (.cursorColor)  Determines the color of the cursor.
  161. +                          The default is the color of the page border.
  162. +    -margins <inches>     (.margins)  Specifies the size of both the top and side
  163. +                          margins.  This can be a decimal number, e.g., 1.5.
  164. +                          XDVI determines the "home" position of the page within
  165. +                          the window as follows.  If the entire page fits in the
  166. +                          window, then the margin settings are ignored.  If, even
  167. +                          after removing the margins from the left, right, top,
  168. +                          and bottom, the page still cannot fit in the window,
  169. +                          then the page is put in the window such that the top
  170. +                          and left margins are hidden, and presumably the upper
  171. +                          left-hand corner of the text on the page will be in the
  172. +                          upper left-hand corner of the window.  Otherwise, the
  173. +                          text is centered in the window.  See also `M' under the
  174. +                          KEYSTROKES section.
  175. +    -sidemargin <inches>  (.sideMargin)  Specifies the side margin (see above).
  176. +    -topmargin <inches>   (.topMargin)  Specifies the top and bottom margins (see
  177. +                          above).
  178. +    -paper <papertype>    (.paper)  Specifies the size of the printed page.  This
  179. +                          may be of the form WxH (or WxHcm), where W is the width
  180. +                          in inches (or cm) and H is the height in inches (or
  181. +                          cm), respectively.  There are also synonyms which may
  182. +                          be used:  us (8.5x11), usr (11x8.5), legal (8.5x14),
  183. +                          foolscap (13.5x17), as well as the ISO sizes a1-a7,
  184. +                          b1-b7, c1-c7, a1r-a7r (a1-a7 rotated), etc.  The
  185. +                          default size is 8.5 x 11 inches.
  186. +    -mgs[n] <size>        (.magnifierSize[n])  Specifies the size of the window
  187. +                          to be used for the "magnifying glass" for Button n.
  188. +                          See the MOUSE ACTIONS section.  Defaults are 200, 350,
  189. +                          600, 900, and 1200.
  190. +    -mgs <size>           Same as -mgs1.
  191. +    -altfont <font>       (.altFont)  Declares a default font to use when the
  192. +                          font in the DVI file cannot be found.  This is useful,
  193. +                          for example, with PostScript fonts.
  194. +    -thorough             (.thorough)  XDVI will usually try to ensure that
  195. +                          overstrike characters (e.g., \notin) are printed
  196. +                          correctly.  On monochrome displays, this is always
  197. +                          possible with one logical operation, either AND or OR.
  198. +                          On color displays, however, this may take two
  199. +                          operations, one to set the appropriate bits and one to
  200. +                          clear other bits.  If this is the case, then by default
  201. +                          XDVI will instead use the copy operation, which does
  202. +                          not handle overstriking correctly.  The "thorough"
  203. +                          option chooses the slower but more correct choice.  See
  204. +                          also -copy, below.
  205. +    -copy                 (.copy)  Always use the copy operation when writing
  206. +                          characters to the display.  This option may be
  207. +                          necessary for correct operation on a color display, but
  208. +                          overstrike characters will be incorrect.
  209. +    -geometry <geometry>  (*geometry)  Specifies the initial geometry of the
  210. +                          window.
  211. +    -icongeometry <geometry> (.iconGeometry) Specifies the initial position for
  212. +                          the icon.
  213. +    -iconic               (.iconic)  Causes the XDVI window to start in the
  214. +                          iconic state.  The default is to start with the window
  215. +                          open.
  216. +    -display <display>    Specifies the host, display, and screen to be used for
  217. +                          displaying the DVI file.  The display must be specified
  218. +                          in the form node::display.screen.  The default is
  219. +                          obtained from the logical name "DECW$DISPLAY", which
  220. +                          may be defined using the SET DISPLAY command.
  221. + KEYSTROKES
  222. + ----------
  223. +    XDVI recognizes the following keystrokes when typed in its window.  Each may
  224. +    optionally be preceded by a (positive or negative) number, whose
  225. +    interpretation will depend on the particular keystroke.  Note that the
  226. +    keystrokes are case sensitive.
  227. +    q    Quits the program.  Control-C and control-D will do this, too.
  228. +    n    Moves to the next page (or to the nth next page if a number is given).
  229. +         Synonyms are `f', Space, Return, and Line Feed.
  230. +    p    Moves to the previous page (or back n pages).  Synonyms are `b',
  231. +         control-H, and Delete.
  232. +    g    Moves to the page with the given number.  Initially, the first page is
  233. +         assumed to be page number 1, but this can be changed with the `P'
  234. +         keystroke, below.  If no page number is given, then it goes to the last
  235. +         page.
  236. +    P    "This is page number n."  This can be used to make the `g' keystroke
  237. +         refer to actual page numbers instead of absolute page numbers.
  238. +    Control-L    Redisplays the current page.
  239. +    ^    Move to the "home" position of the page.  This is normally the upper
  240. +         left-hand corner of the page, depending on the margins as described in
  241. +         the -margins option, above.
  242. +    u    Moves up two thirds of a window-full.
  243. +    d    Moves down two thirds of a window-full.
  244. +    l    Moves left two thirds of a window-full.
  245. +    r    Moves right two thirds of a window-full.
  246. +    c    Moves the page so that the point currently beneath the cursor is moved
  247. +         to the middle of the window.  It also (gasp!) warps the cursor to the
  248. +         same place.
  249. +    M    Sets the margins so that the point currently under the cursor is the
  250. +         upper left-hand corner of the text in the page.  Note that this command
  251. +         itself does not move the image at all.  For details on how the margins
  252. +         are used, see the -margins option.
  253. +    s    Changes the shrink factor to the given number.  If no number is given,
  254. +         the smallest factor that makes the entire page fit in the window will be
  255. +         used.  (Margins are ignored in this computation.)
  256. +    S    Sets the density factor to be used when shrinking bitmaps.  This should
  257. +         be a number between 0 and 100; higher numbers produce lighter
  258. +         characters.
  259. +    R    Forces the DVI file to be reread.  This allows you to preview many
  260. +         versions of the same file while running XDVI only once.
  261. +    k    Normally when XDVI switches pages it moves to the home position as well.
  262. +         The `k' keystroke toggles a `keep-position' flag which, when set, will
  263. +         keep the same position when moving between pages.  Also `0k' and `1k'
  264. +         clear and set this flag, respectively.
  265. + MOUSE ACTIONS
  266. + -------------
  267. +    If the shrink factor is set to any number other than one, then clicking any
  268. +    mouse button will pop up a "magnifying glass" which shows the unshrunk image
  269. +    in the vicinity of the mouse click.  This subwindow disappears when the mouse
  270. +    button is released.  Different mouse buttons produce different sized windows,
  271. +    as indicated by the -mgs option.  Moving the cursor while holding the button
  272. +    down will move the magnifying glass.
  273. +    Also, the scrollbars (if present) behave in the standard X Window way:
  274. +    pushing Button 2 in a scrollbar moves the top or left edge of the scrollbar
  275. +    to that point and optionally drags it;  pushing Button 1 moves the image up
  276. +    or right by an amount equal to the distance from the button press to the
  277. +    upper left-hand corner of the window; pushing Button 3 moves the image down
  278. +    or left by the same amount.  Note that this is different than the way
  279. +    DECWindows normally defines the actions of the mouse buttons in scrollbars.
  280. + LOGICAL NAMES
  281. + -------------
  282. +    Unless the -display option is used on the command line, XDVI uses the logical
  283. +    name "DECW$DISPLAY" to specify which bit map display terminal to use.  This
  284. +    logical name may be defined with the SET DISPLAY command.
  285. +    The logical name "XDVIFONTS" determines the directory path(s) searched for
  286. +    fonts in the following manner.  The string consists of one or more strings
  287. +    separated by slashes.  In each such string, the substring "%f" is changed to
  288. +    the font name; "%d" is changed to the magnification; and "%p" is changed to
  289. +    the font family ("gf", "pk", or "pxl").  If no "%f" appears in the string,
  290. +    then the string ":%f.%d%p" is added on the end.  For example, if the string
  291. +    is "TEX$DISK:[TEX.FONTS.%d]%f.%p" and the font is cmr10 at 300 dpi, then XDVI
  292. +    looks for TEX$DISK:[TEX.FONTS.300]CMR10.GF, TEX$DISK:[TEX.FONTS.300]CMR10.PK,
  293. +    and TEX$DISK:[TEX.FONTS.1500]CMR10.PXL, in that order.  If the first
  294. +    character of the "XDVIFONTS" logical name is a slash, then the system default
  295. +    directories are tried first.  If the font is not found in the desired size,
  296. +    then XDVI will try to find the nearest size.  If the font cannot be found at
  297. +    all, then XDVI will try to vary the point size of the font (within a certain
  298. +    range), and if this fails, then it will use the font specified as the
  299. +    alternate font (cf. -altfont).
  300. +    The logical name "XDVISIZES" must be set to indicate which sizes of fonts are
  301. +    available.  It should consists of a list of numbers separated by slashes.  If
  302. +    the list begins with a slash, the system default sizes are used, as well.
  303. +    Sizes are expressed in dots per inch; decimals may be used for "pxl" files:
  304. +    for example, a 300 dots per inch file magnified by half a step comes out to
  305. +    1643 dots per five inches, which should be encoded as 328.6.  The current
  306. +    default set of sizes is 300/328.6/360/432/518.4/622/746.4.
  307. + FILES
  308. + -----
  309. +    TEX$FONTS   System default directory for font pixel files.
  310. + RESOURCE NAMES
  311. + --------------
  312. +    All of the command line options may be set via the resource names given in
  313. +    parentheses in the descriptions of the options.  This may be used to define a
  314. +    specific set of options as the default each time you run XDVI.  To make use
  315. +    of this feature, create a file named DECW$XDEFAULTS.DAT in the same directory
  316. +    as the rest of your DECW*.DAT files.  Include in this file the resource names
  317. +    and arguments of each of the options you wish to specify.  For example:
  318. +       XDvi.copy: off
  319. +       XDvi.thorough: on
  320. +       XDvi.shrinkFactor: 2
  321. +       XDvi.margins: 0.95
  322. +       XDvi*geometry: 1015x750+3+25
  323. +    When XDVI is invoked, it would behave as if it had been invoked with the
  324. +    following command:
  325. +       XDVI +copy -thorough -s 2 -margins 0.95 -geometry 1015x750+3+25 dvifile
  326. +    Specifying options on the command line will override any options specified
  327. +    via resource names in the DECW$XDEFAULTS.DAT file.
  328. + INSTALLATION
  329. + ------------
  330. +    The installation of XDVI on a VMS system is relatively easy.  If you have a
  331. +    source-only distribution, you will need to have access to the VAX C compiler
  332. +    to build an executable image.  The following steps should get you started:
  333. +    1) Gather all of the distribution files into one directory, and then create
  334. +       the executable image by executing the MAKE_VMS.COM file:
  335. +          $ @MAKE_VMS
  336. +    2) Create a help file for XDVI using the supplied XDVI.RNH file:
  337. +          $ RUNOFF XDVI.RNH
  338. +    3) Insert the resulting XDVI.HLP file into one of your local help libraries:
  339. +          $ LIBRARY /INSERT HELPLIB.HLB XDVI.HLP
  340. +    4) Modify the command file you use to set up the TEX commands so that it
  341. +       defines the foreign symbol XDVI, and the logical names XDVIFONTS and
  342. +       XDVISIZES.  For more information on the expected contents of the logical
  343. +       names, see the LOGICAL NAMES section of this document.  The following
  344. +       lines are what I use locally:
  345. +       $ PROC      = F$ENVIRONMENT ("PROCEDURE")
  346. +       $ TEXDIR    = F$PARSE (PROC, , , "DEVICE", "NO_CONCEAL") + -
  347. +                     F$PARSE (PROC, , , "DIRECTORY", "NO_CONCEAL")
  348. +       $ TEXDIR    = TEXDIR - "][" - "][" - "][" - "]"
  349. +       $ TEXDISK   = TEXDIR + ".]"
  350. +       $ PIXELS    = TEXDIR + ".GF.CANON300.]"
  351. +       $ LPIXELS   = TEXDIR + ".LOCAL.PIXELS.CANON300.]"
  352. +       $!
  353. +       $! Define the virtual disk devices.
  354. +       $!
  355. +       $ DEFINE /PROCESS /TRANSLATE = (CONCEAL, TERMINAL) PIXELS$    'PIXELS'
  356. +       $ DEFINE /PROCESS /TRANSLATE = (CONCEAL, TERMINAL) LPIXELS$   'LPIXELS'
  357. +       $!
  358. +       $! Define the directories for TeX and its related TeXware.
  359. +       $!
  360. +       $ DEFINE TEX$          TEX$DISK:[LOCAL.PROGRAMS]
  361. +       $ DEFINE TEX$PIXELS    PIXELS$, LPIXELS$
  362. +       $!
  363. +       $! Define the information necessary to run XDVI.
  364. +       $!
  365. +       $ XDVI :== "$TEX$:XDVI"
  366. +       $ DEFINE XDVIFONTS "TEX$PIXELS:[DPI%d]%f.%p"
  367. +       $ DEFINE XDVISIZES -
  368. +               "300/328.6/360/432/518.4/600/622/746.4/895.8/1075/1200/1290/1548"
  369. +       $ EXIT
  370. +    5) If you wish, you may create a DECW$XDEFAULTS.DAT file that specifies a
  371. +       default set of command line options.  See the RESOURCE NAMES section for
  372. +       more information and an example of what I use locally.
  373. +    If you have any comments about XDVI, or find any bugs in the program, please
  374. +    contact me at the address below.  Enjoy!
  375. +                     Scott Allendorf
  376. +                     Department of Physics and Astronomy
  377. +                     The University of Iowa
  378. +                     Iowa City, IA 52242
  379. +                     Phone: (319) 335-1960
  380. +                     Email: allendorf@iowasp.physics.uiowa.edu
  381. + AUTHORS
  382. + -------
  383. +    Eric Cooper, CMU, did a version for direct output to a QVSS.
  384. +    Modified for X by Bob Scheifler, MIT Laboratory for Computer Science.
  385. +    Modified for X11 by Mark Eichin, MIT SIPB.
  386. +    Modified for DECWindows by Scott Allendorf, University of Iowa.
  387. +    Additional enhancements by many others.
  388. diff -cr old/XDVI.RNH new/XDVI.RNH
  389. *** old/XDVI.RNH    Mon May  7 18:51:44 1990
  390. --- new/XDVI.RNH    Wed May  9 22:18:50 1990
  391. ***************
  392. *** 0 ****
  393. --- 1,495 ----
  394. + .!
  395. + .! This is a RUNOFF source file that produces a VMS-style HELP library
  396. + .! for the XDVI program.
  397. + .!
  398. + .! This file was created by hand-converting XDVI.MAN.  The internal date
  399. + .! in the XDVI.MAN file was "27 March 1990".  If you improve this file,
  400. + .! please let me know.  Pete Siemsen,  siemsen@usc.edu
  401. + .!
  402. + .! Merged with patchlevel 8.001 help file for VMS by Scott Allendorf.
  403. + .!
  404. + .NO PAGING
  405. + .NO FLAGS ALL
  406. + .RIGHT MARGIN 70
  407. + .LITERAL
  408. + !
  409. + ! DO NOT EDIT THIS FILE.  It was produced by passing a .RNH file through
  410. + ! RUNOFF.  Edit the .RNH file instead.
  411. + !
  412. + .END LITERAL
  413. + .LEFT MARGIN 1
  414. + .INDENT -1
  415. + 1 XDVI
  416. + .BREAK
  417. + XDVI is a program which runs under the DECWindows system. It is used to
  418. + preview DVI files, such as those produced by TeX and LaTeX.
  419. + .SKIP
  420. + XDVI has the capability of displaying the file reduced by various
  421. + (integer) factors, and also has a "magnifying glass" which allows one
  422. + to see a small part of the unshrunk image momentarily.
  423. + .SKIP
  424. + Before displaying any page or part thereof, XDVI checks to see if
  425. + the DVI file has changed since the last time it was displayed.  If this
  426. + is the case, XDVI will reinitialize itself for the new DVI file.  For
  427. + this reason, exposing parts of the XDVI window while TeX is running
  428. + should be avoided.  This feature allows you to preview many versions
  429. + of the same file while running XDVI only once.
  430. + .SKIP
  431. + Format:
  432. + .SKIP
  433. + .INDENT +3
  434. + XDVI [Options] dvi_file
  435. + .INDENT -1
  436. + 2 Options
  437. + .BREAK
  438. + In addition to specifying the .DVI file (with or without the .DVI),
  439. + XDVI supports the following command line options.  If the option
  440. + begins with a "+" instead of a "-", the option is restored to its
  441. + default value.  By default, these options can be set via the resource
  442. + names given in the description of each option.
  443. + .INDENT -1
  444. + 3 +
  445. + .BREAK
  446. + +<page>
  447. + .SKIP
  448. + Specifies the first page to show.  If + is given without a number, the
  449. + last page is assumed; the first page is the default.
  450. + .INDENT -1
  451. + 3 -altfont
  452. + .BREAK
  453. + -altfont <font>
  454. + .SKIP
  455. + Declares a default font to use when the font in the DVI file cannot be
  456. + found.  This is useful, for example, with PostScript fonts.
  457. + .SKIP
  458. + The resource name is ".altFont".
  459. + .INDENT -1
  460. + 3 -background
  461. + .BREAK
  462. + -background <color>
  463. + .SKIP
  464. + Same as -bg.
  465. + .INDENT -1
  466. + 3 -bd
  467. + .BREAK
  468. + -bd <color>
  469. + .SKIP
  470. + Determines the color of the window border.
  471. + .SKIP
  472. + The resource name is ".borderColor".
  473. + .INDENT -1
  474. + 3 -bg
  475. + .BREAK
  476. + -bg <color>
  477. + .SKIP
  478. + Determines the color of the background.
  479. + .SKIP
  480. + The resource name is ".background".
  481. + .INDENT -1
  482. + 3 -bordercolor
  483. + .BREAK
  484. + -bordercolor <color>
  485. + .SKIP
  486. + Same as -bd.
  487. + .INDENT -1
  488. + 3 -borderwidth
  489. + .BREAK
  490. + -borderwidth <width>
  491. + .SKIP
  492. + Same as -bw.
  493. + .INDENT -1
  494. + 3 -bw
  495. + .BREAK
  496. + -bw <width>
  497. + .SKIP
  498. + Specifies the width of the border of the window.
  499. + .SKIP
  500. + The resource name is ".borderWidth".
  501. + .INDENT -1
  502. + 3 -copy
  503. + .BREAK
  504. + Always use the copy operation when writing characters to the display.
  505. + This option may be necessary for correct operation on a color display,
  506. + but overstrike characters will be incorrect.
  507. + .SKIP
  508. + The resource name is ".copy".
  509. + .INDENT -1
  510. + 3 -cr
  511. + .BREAK
  512. + -cr <color>
  513. + .SKIP
  514. + Determines the color of the cursor.  The default is the
  515. + color of the page border.
  516. + .SKIP
  517. + The resource name is ".cursorColor".
  518. + .INDENT -1
  519. + 3 -density
  520. + .BREAK
  521. + -density <density>
  522. + .SKIP
  523. + Determines the density used when shrinking bitmaps for fonts.  A
  524. + higher value produces a lighter font.  The default value is 40.
  525. + .SKIP
  526. + The resource name is ".densityPercent".
  527. + .INDENT -1
  528. + 3 -display
  529. + .BREAK
  530. + -display <display>
  531. + .SKIP
  532. + Specifies the host, display, and screen to be used for displaying the DVI file.
  533. + The display must be specified in the form node::display.screen.  The default
  534. + is obtained from the logical name "DECW$DISPLAY", which may be defined using the
  535. + SET DISPLAY command.
  536. + .INDENT -1
  537. + 3 -fg
  538. + .BREAK
  539. + -fg <color>
  540. + .SKIP
  541. + Determines the color of the text (foreground).
  542. + .SKIP
  543. + The resource name is ".foreground".
  544. + .INDENT -1
  545. + 3 -foreground
  546. + .BREAK
  547. + -foreground <color>
  548. + .SKIP
  549. + Same as -fg.
  550. + .INDENT -1
  551. + 3 -geometry
  552. + .BREAK
  553. + -geometry <geometry>
  554. + .SKIP
  555. + Specifies the initial geometry of the window.
  556. + .SKIP
  557. + The resource name is "*geometry".
  558. + .INDENT -1
  559. + 3 -hl
  560. + .BREAK
  561. + -hl <color>
  562. + .SKIP
  563. + Determines the color of the page border.  The default is the foreground color.
  564. + .SKIP
  565. + The resource name is ".highlight".
  566. + .INDENT -1
  567. + 3 -icongeometry
  568. + .BREAK
  569. + -icongeometry <geometry>
  570. + .SKIP
  571. + Specifies the initial position for the icon.
  572. + .SKIP
  573. + The resource name is ".iconGeometry".
  574. + .INDENT -1
  575. + 3 -iconic
  576. + .BREAK
  577. + -iconic
  578. + .SKIP
  579. + Causes the XDVI window to start in the iconic state.  The default is to start
  580. + with the window open.
  581. + .SKIP
  582. + The resource name is ".iconic".
  583. + .INDENT -1
  584. + 3 -l
  585. + .BREAK
  586. + Causes the names of the fonts used to be listed.
  587. + .SKIP
  588. + The resource name is ".listFonts".
  589. + .INDENT -1
  590. + 3 -p
  591. + .BREAK
  592. + -p <pixels>
  593. + .SKIP
  594. + Defines the size of the fonts to use, in pixels per inch.  The
  595. + default value is 300.
  596. + .SKIP
  597. + The resource name is ".pixelsPerInch".
  598. + .INDENT -1
  599. + 3 -paper
  600. + .BREAK
  601. + -paper <papertype>
  602. + .SKIP
  603. + Specifies the size of the printed page.  This may be of the form WxH
  604. + (or WxHcm), where W is the width in inches (or cm) and H is the height
  605. + in inches (or cm), respectively.  There are also synonyms which may be
  606. + used: us (8.5x11), usr (11x8.5), legal (8.5x14), foolscap (13.5x17),
  607. + as well as the ISO sizes a1-a7, b1-b7, c1-c7, a1r-a7r (a1-a7 rotated),
  608. + etc.  The default size is 8.5 x 11 inches.
  609. + .SKIP
  610. + The resource name is ".paper".
  611. + .INDENT -1
  612. + 3 -margins
  613. + .BREAK
  614. + -margins <inches>
  615. + .SKIP
  616. + Specifies the size of both the top and side margins.  This can
  617. + be a decimal number, e.g., 1.5.  XDVI determines the "home" position of
  618. + the page within the window as follows.  If the entire page fits in the
  619. + window, then the margin settings are ignored.  If, even after removing
  620. + the margins from the left, right, top, and bottom, the page still
  621. + cannot fit in the window, then the page is put in the window such that
  622. + the top and left margins are hidden, and presumably the upper
  623. + left-hand corner of the text on the page will be in the upper
  624. + left-hand corner of the window.  Otherwise, the text is centered in
  625. + the window.  See also `M' under the Keystrokes help entry.
  626. + .SKIP
  627. + The resource name is ".margins".
  628. + .INDENT -1
  629. + 3 -mgs[n]
  630. + .BREAK
  631. + -mgs[n] <size>
  632. + .SKIP
  633. + Specifies the size of the window to be used for the "magnifying glass"
  634. + for Button n.  See the MOUSE ACTIONS section.
  635. + Defaults are 200, 350, 600, 900, and 1200.
  636. + .SKIP
  637. + The resource name is ".magnifierSize[n]".
  638. + .INDENT -1
  639. + 3 -mgs
  640. + .BREAK
  641. + -mgs <size>
  642. + .SKIP
  643. + Same as -mgs1.
  644. + .INDENT -1
  645. + 3 -rv
  646. + .BREAK
  647. + Causes the page to be displayed with white characters on a black
  648. + background, instead of vice versa.
  649. + .SKIP
  650. + The resource name is ".reverseVideo".
  651. + .INDENT -1
  652. + 3 -s
  653. + .BREAK
  654. + -s <shrink>
  655. + .SKIP
  656. + Defines the initial shrink factor.  The default value is 3.
  657. + .SKIP
  658. + The resource name is ".shrinkFactor".
  659. + .INDENT -1
  660. + 3 -sidemargin
  661. + .BREAK
  662. + -sidemargin <inches>
  663. + .SKIP
  664. + Specifies the side margin (see -margins).
  665. + .SKIP
  666. + The resource name is ".sideMargin".
  667. + .INDENT -1
  668. + 3 -thorough
  669. + .BREAK
  670. + XDVI will usually try to ensure that overstrike characters (e.g.,
  671. + \notin) are printed correctly.  On monochrome displays, this is always
  672. + possible with one logical operation, either AND or OR.  On color
  673. + displays, however, this may take two operations, one to set the
  674. + appropriate bits and one to clear other bits.  If this is the case,
  675. + then by default XDVI will instead use the copy operation, which does
  676. + not handle overstriking correctly.  The "thorough" option chooses the
  677. + slower but more correct choice.  See also -copy.
  678. + .SKIP
  679. + The resource name is ".thorough".
  680. + .INDENT -1
  681. + 3 -topmargin
  682. + .BREAK
  683. + -topmargin <inches>
  684. + .SKIP
  685. + Specifies the top and bottom margins (see -margins).
  686. + .SKIP
  687. + The resource name is ".topMargin".
  688. + .INDENT -1
  689. + 2 Keystrokes
  690. + .BREAK
  691. + Xdvi recognizes the following keystrokes when typed in its window.
  692. + Each may optionally be preceded by a (positive or negative) number, whose
  693. + interpretation will depend on the particular keystroke.  Note that the
  694. + keystrokes are case sensitive.
  695. + .INDENT -1
  696. + 3 q
  697. + .BREAK
  698. + Quits the program.  Control-C and control-D will do this, too.
  699. + .INDENT -1
  700. + 3 n
  701. + .BREAK
  702. + Moves to the next page (or to the nth next page if a number is given).
  703. + Synonyms are `f', Space, Return, and Line Feed.
  704. + .INDENT -1
  705. + 3 p
  706. + .BREAK
  707. + Moves to the previous page (or back n pages).  Synonyms are
  708. + `b', control-H, and Delete.
  709. + .INDENT -1
  710. + 3 g
  711. + .BREAK
  712. + Moves to the page with the given number.  Initially, the first page is
  713. + assumed to be page number 1, but this can be changed with the `P'
  714. + keystroke.  If no page number is given, then it goes to the last page.
  715. + .INDENT -1
  716. + 3 P
  717. + .BREAK
  718. + "This is page number n."  This can be used to make the `g'
  719. + keystroke refer to actual page numbers instead of absolute page numbers.
  720. + .INDENT -1
  721. + 3 Control-L
  722. + .BREAK
  723. + Redisplays the current page.
  724. + .INDENT -1
  725. + 3 ^
  726. + .BREAK
  727. + Move to the "home" position of the page.  This is normally the upper
  728. + left-hand corner of the page, depending on the margins as described in
  729. + the -margins option.
  730. + .INDENT -1
  731. + 3 u
  732. + .BREAK
  733. + Moves up two thirds of a window-full.
  734. + .INDENT -1
  735. + 3 d
  736. + .BREAK
  737. + Moves down two thirds of a window-full.
  738. + .INDENT -1
  739. + 3 l
  740. + .BREAK
  741. + Moves left two thirds of a window-full.
  742. + .INDENT -1
  743. + 3 r
  744. + .BREAK
  745. + Moves right two thirds of a window-full.
  746. + .INDENT -1
  747. + 3 c
  748. + .BREAK
  749. + Moves the page so that the point currently beneath the cursor is moved to
  750. + the middle of the window.  It also (gasp!) warps the cursor to the same place.
  751. + .INDENT -1
  752. + 3 M
  753. + .BREAK
  754. + Sets the margins so that the point currently under the cursor is the upper
  755. + left-hand corner of the text in the page.  Note that this command itself does
  756. + not move the image at all.  For details on how the margins are used, see
  757. + the -margins option.
  758. + .INDENT -1
  759. + 3 s
  760. + .BREAK
  761. + Changes the shrink factor to the given number.  If no number is given, the
  762. + smallest factor that makes the entire page fit in the window will be used.
  763. + (Margins are ignored in this computation.)
  764. + .INDENT -1
  765. + 3 S
  766. + .BREAK
  767. + Sets the density factor to be used when shrinking bitmaps.  This should
  768. + be a number between 0 and 100; higher numbers produce lighter characters.
  769. + .INDENT -1
  770. + 3 R
  771. + .BREAK
  772. + Forces the dvi file to be reread.  This allows you to preview many
  773. + versions of the same file while running XDVI only once.
  774. + .INDENT -1
  775. + 3 k
  776. + .BREAK
  777. + Normally when XDVI switches pages it moves to the home position as
  778. + well.  The `k' keystroke toggles a `keep-position' flag which, when
  779. + set, will keep the same position when moving between pages.  Also `0k'
  780. + and `1k' clear and set this flag, respectively.
  781. + .INDENT -1
  782. + 2 Mouse_Actions
  783. + .BREAK
  784. + If the shrink factor is set to any number other than one, then
  785. + clicking any mouse button will pop up a "magnifying glass" which shows
  786. + the unshrunk image in the vicinity of the mouse click.  This subwindow
  787. + disappears when the mouse button is released.  Different mouse buttons
  788. + produce different sized windows, as indicated by the -mgs option.
  789. + Moving the cursor while holding the button down will move the
  790. + magnifying glass.
  791. + .SKIP
  792. + Also, the scrollbars (if present) behave in the standard X Window way: pushing
  793. + Button 2 in a scrollbar moves the top or left edge of the scrollbar to
  794. + that point and optionally drags it; pushing Button 1 moves the image
  795. + up or right by an amount equal to the distance from the button press
  796. + to the upper left-hand corner of the window; pushing Button 3 moves
  797. + the image down or left by the same amount.  Note that this is
  798. + different than the way
  799. + DECWindows normally defines the actions of the mouse buttons in scrollbars.
  800. + .INDENT -1
  801. + 2 Logical_Names
  802. + .BREAK
  803. + Some logical names can be defined to override the values defined when
  804. + XDVI was compiled.
  805. + .INDENT -1
  806. + 3 DECW$DISPLAY
  807. + .BREAK
  808. + Unless the -display option is used on the command line, XDVI uses the logical
  809. + name "DECW$DISPLAY" to specify which bit map
  810. + display terminal to use.  This logical name may be defined with the SET
  811. + DISPLAY command.
  812. + .INDENT -1
  813. + 3 XDVIFONTS
  814. + .BREAK
  815. + The logical name "XDVIFONTS" determines the directory path(s) searched for fonts
  816. + in the following manner.  The string consists of one or more strings
  817. + separated by slashes.  In each such string, the substring "%f" is
  818. + changed to the font name; "%d" is changed to the magnification; and
  819. + "%p" is changed to the font family ("gf", "pk", or "pxl").  If no "%f"
  820. + appears in the string, then the string ":%f.%d%p" is added on the end.
  821. + .SKIP
  822. + For example, if the string is "TEX$DISK:[TEX.FONTS.%d]%f.%p" and the font is
  823. + cmr10 at 300dpi, then XDVI looks for TEX$DISK:[TEX.FONTS.300]CMR10.GF,
  824. + TEX$DISK:[TEX.FONTS.300]CMR10.PK, and TEX$DISK:[TEX.FONTS.1500]CMR10.PXL,
  825. + in that order.
  826. + .SKIP
  827. + If the first character of the "XDVIFONTS" logical name is a slash, then
  828. + the system default directories are tried first.  If the font is not found in
  829. + the desired size, then XDVI will try to find the nearest size.  If the
  830. + font cannot be found at all, then XDVI will try to vary the point size
  831. + of the font (within a certain range), and if this fails, then it will
  832. + use the font specified as the alternate font (cf. -altfont).
  833. + .INDENT -1
  834. + 3 XDVISIZES
  835. + .BREAK
  836. + The logical name "XDVISIZES" must be set to indicate which
  837. + sizes of fonts are available.  It should consists of a list of numbers
  838. + separated by slashes.  If the list begins with a slash, the system
  839. + default sizes are used, as well.  Sizes are expressed in dots per
  840. + inch; decimals may be used for "pxl" files: for example, a 300 dots
  841. + per inch file magnified by half a step comes out to 1643 dots per five
  842. + inches, which should be encoded as 328.6.  The current default set of
  843. + sizes is 300/328.6/360/432/518.4/622/746.4.
  844. + .INDENT -1
  845. + 2 Resource_Names
  846. + .BREAK
  847. +    All of the command line options may be set via the resource names given in
  848. +    the descriptions of the options.  This may be used to define a
  849. +    specific set of options as the default each time you run XDVI.  To make use
  850. +    of this feature, create a file named DECW$XDEFAULTS.DAT in the same directory
  851. +    as the rest of your DECW*.DAT files.  Include in this file the resource names
  852. +    and arguments of each of the options you wish to specify.  For example:
  853. + .SKIP
  854. + .LITERAL
  855. +    XDvi.copy: off
  856. +    XDvi.thorough: on
  857. +    XDvi.shrinkFactor: 2
  858. +    XDvi.margins: 0.95
  859. +    XDvi*geometry: 1015x750+3+25
  860. + .END LITERAL
  861. + .SKIP
  862. +    When XDVI is invoked, it would behave as if it had been invoked with the
  863. +    following command:
  864. + .SKIP
  865. + .LITERAL
  866. +    XDVI +copy -thorough -s 2 -margins 0.95 -geometry 1015x750+3+25 dvifile
  867. + .END LITERAL
  868. + .SKIP
  869. +    Specifying options on the command line will override any options specified
  870. +    via resource names in the DECW$XDEFAULTS.DAT file.
  871. + .INDENT -1
  872. + 2 Authors
  873. + .BREAK
  874. + .LITERAL
  875. + Eric Cooper, CMU, did a version for direct output to a QVSS.
  876. + Modified for X by Bob Scheifler, MIT Laboratory for Computer Science.
  877. + Modified for X11 by Mark Eichin, MIT SIPB.
  878. + Modified for VMS and DECWindows by Scott Allendorf, University of Iowa.
  879. + Additional enhancements by many others.
  880. + .END LITERAL
  881. diff -cr old/dvi_draw.c new/dvi_draw.c
  882. *** old/dvi_draw.c    Mon May  7 18:48:22 1990
  883. --- new/dvi_draw.c    Sun May  6 18:51:06 1990
  884. ***************
  885. *** 50,56 ****
  886.       0xf,    0x1f,    0x3f,    0x7f,
  887.       0xff
  888.   };
  889. ! #else    BMSHORT
  890.   unsigned short    bit_masks[17] = {
  891.       0x0,    0x1,    0x3,    0x7,
  892.       0xf,    0x1f,    0x3f,    0x7f,
  893. --- 50,56 ----
  894.       0xf,    0x1f,    0x3f,    0x7f,
  895.       0xff
  896.   };
  897. ! #else    /* BMSHORT */
  898.   unsigned short    bit_masks[17] = {
  899.       0x0,    0x1,    0x3,    0x7,
  900.       0xf,    0x1f,    0x3f,    0x7f,
  901. ***************
  902. *** 58,65 ****
  903.       0xfff,    0x1fff,    0x3fff,    0x7fff,
  904.       0xffff
  905.   };
  906. ! #endif    BMSHORT
  907. ! #else    BMLONG
  908.   unsigned long    bit_masks[33] = {
  909.       0x0,        0x1,        0x3,        0x7,
  910.       0xf,        0x1f,        0x3f,        0x7f,
  911. --- 58,65 ----
  912.       0xfff,    0x1fff,    0x3fff,    0x7fff,
  913.       0xffff
  914.   };
  915. ! #endif    /* BMSHORT */
  916. ! #else    /* BMLONG */
  917.   unsigned long    bit_masks[33] = {
  918.       0x0,        0x1,        0x3,        0x7,
  919.       0xf,        0x1f,        0x3f,        0x7f,
  920. ***************
  921. *** 71,77 ****
  922.       0xfffffff,    0x1fffffff,    0x3fffffff,    0x7fffffff,
  923.       0xffffffff
  924.   };
  925. ! #endif    BMLONG
  926.   
  927.   char    *malloc();
  928.   Boolean    check_dvi_file();
  929. --- 71,77 ----
  930.       0xfffffff,    0x1fffffff,    0x3fffffff,    0x7fffffff,
  931.       0xffffffff
  932.   };
  933. ! #endif    /* BMLONG */
  934.   
  935.   char    *malloc();
  936.   Boolean    check_dvi_file();
  937. ***************
  938. *** 91,99 ****
  939.           for (x = bitmap->bytes_wide; x > 0; x -= BYTES_PER_BMUNIT) {
  940.   #ifndef    MSBITFIRST
  941.           for (i = 0; i < BITS_PER_BMUNIT; ++i)
  942. ! #else    MSBITFIRST
  943.           for (i = BITS_PER_BMUNIT - 1; i >= 0; --i)
  944. ! #endif    MSBITFIRST
  945.               putchar((*ptr & (1 << i)) ? '@' : ' ');
  946.           ++ptr;
  947.           }
  948. --- 91,99 ----
  949.           for (x = bitmap->bytes_wide; x > 0; x -= BYTES_PER_BMUNIT) {
  950.   #ifndef    MSBITFIRST
  951.           for (i = 0; i < BITS_PER_BMUNIT; ++i)
  952. ! #else
  953.           for (i = BITS_PER_BMUNIT - 1; i >= 0; --i)
  954. ! #endif
  955.               putchar((*ptr & (1 << i)) ? '@' : ' ');
  956.           ++ptr;
  957.           }
  958. ***************
  959. *** 191,211 ****
  960.       bits_left = w;
  961.   #ifndef    MSBITFIRST
  962.       bit_shift = bit_skip % BITS_PER_BMUNIT;
  963. ! #else    MSBITFIRST
  964.       bit_shift = BITS_PER_BMUNIT - bit_skip % BITS_PER_BMUNIT;
  965. ! #endif    MSBITFIRST
  966.       n = 0;
  967.       while (bits_left) {
  968.   #ifndef    MSBITFIRST
  969.           wid = BITS_PER_BMUNIT - bit_shift;
  970. ! #else    MSBITFIRST
  971.           wid = bit_shift;
  972. ! #endif    MSBITFIRST
  973.           if (wid > bits_left) wid = bits_left;
  974.           if (wid > 4) wid = 4;
  975.   #ifdef    MSBITFIRST
  976.           bit_shift -= wid;
  977. ! #endif    MSBITFIRST
  978.           for (cp = ptr; cp < endp; cp = ADD(cp, bytes_wide))
  979.           n += sample_count[(*cp >> bit_shift) & bit_masks[wid]];
  980.   #ifndef    MSBITFIRST
  981. --- 191,211 ----
  982.       bits_left = w;
  983.   #ifndef    MSBITFIRST
  984.       bit_shift = bit_skip % BITS_PER_BMUNIT;
  985. ! #else
  986.       bit_shift = BITS_PER_BMUNIT - bit_skip % BITS_PER_BMUNIT;
  987. ! #endif
  988.       n = 0;
  989.       while (bits_left) {
  990.   #ifndef    MSBITFIRST
  991.           wid = BITS_PER_BMUNIT - bit_shift;
  992. ! #else
  993.           wid = bit_shift;
  994. ! #endif
  995.           if (wid > bits_left) wid = bits_left;
  996.           if (wid > 4) wid = 4;
  997.   #ifdef    MSBITFIRST
  998.           bit_shift -= wid;
  999. ! #endif
  1000.           for (cp = ptr; cp < endp; cp = ADD(cp, bytes_wide))
  1001.           n += sample_count[(*cp >> bit_shift) & bit_masks[wid]];
  1002.   #ifndef    MSBITFIRST
  1003. ***************
  1004. *** 214,225 ****
  1005.           bit_shift = 0;
  1006.           ++ptr;
  1007.           }
  1008. ! #else    MSBITFIRST
  1009.           if (bit_shift == 0) {
  1010.           bit_shift = BITS_PER_BMUNIT;
  1011.           ++ptr;
  1012.           }
  1013. ! #endif    MSBITFIRST
  1014.           bits_left -= wid;
  1015.       }
  1016.       return n;
  1017. --- 214,225 ----
  1018.           bit_shift = 0;
  1019.           ++ptr;
  1020.           }
  1021. ! #else
  1022.           if (bit_shift == 0) {
  1023.           bit_shift = BITS_PER_BMUNIT;
  1024.           ++ptr;
  1025.           }
  1026. ! #endif
  1027.           bits_left -= wid;
  1028.       }
  1029.       return n;
  1030. ***************
  1031. *** 265,273 ****
  1032.           cols_left = g->bitmap.w;
  1033.   #ifndef    MSBITFIRST
  1034.           m = (1 << 0);
  1035. ! #else    MSBITFIRST
  1036.           m = (1 << (BITS_PER_BMUNIT-1));
  1037. ! #endif    MSBITFIRST
  1038.           cp = new_ptr;
  1039.           cols = init_cols;
  1040.           while (cols_left) {
  1041. --- 265,273 ----
  1042.           cols_left = g->bitmap.w;
  1043.   #ifndef    MSBITFIRST
  1044.           m = (1 << 0);
  1045. ! #else
  1046.           m = (1 << (BITS_PER_BMUNIT-1));
  1047. ! #endif
  1048.           cp = new_ptr;
  1049.           cols = init_cols;
  1050.           while (cols_left) {
  1051. ***************
  1052. *** 281,293 ****
  1053.               ++cp;
  1054.           }
  1055.           else m <<= 1;
  1056. ! #else    MSBITFIRST
  1057.           if (m == (1 << 0)) {
  1058.               m = (1 << (BITS_PER_BMUNIT-1));
  1059.               ++cp;
  1060.           }
  1061.           else m >>= 1;
  1062. ! #endif    MSBITFIRST
  1063.           cols_left -= cols;
  1064.           cols = shrink_factor;
  1065.           }
  1066. --- 281,293 ----
  1067.               ++cp;
  1068.           }
  1069.           else m <<= 1;
  1070. ! #else
  1071.           if (m == (1 << 0)) {
  1072.               m = (1 << (BITS_PER_BMUNIT-1));
  1073.               ++cp;
  1074.           }
  1075.           else m >>= 1;
  1076. ! #endif
  1077.           cols_left -= cols;
  1078.           cols = shrink_factor;
  1079.           }
  1080. diff -cr old/dvi_init.c new/dvi_init.c
  1081. *** old/dvi_init.c    Mon May  7 18:48:24 1990
  1082. --- new/dvi_init.c    Wed May  9 22:39:24 1990
  1083. ***************
  1084. *** 73,79 ****
  1085.   
  1086.   #ifdef    sun
  1087.   char    *sprintf();
  1088. ! #endif    sun
  1089.   
  1090.   char    *malloc();
  1091.   FILE    *pxl_open();
  1092. --- 73,79 ----
  1093.   
  1094.   #ifdef    sun
  1095.   char    *sprintf();
  1096. ! #endif
  1097.   
  1098.   char    *malloc();
  1099.   FILE    *pxl_open();
  1100. ***************
  1101. *** 208,224 ****
  1102.   find_postamble()
  1103.   {
  1104.       ubyte byte;
  1105. -     long offset = -4;        /* At least 4 TRAILERS */
  1106.   
  1107. !     do {
  1108. !         offset -= 1;
  1109. !         Fseek(dvi_file, offset, 2);
  1110.           byte = one(dvi_file);
  1111. !     } while (byte == TRAILER);
  1112.       if (byte != 2)
  1113.           dvi_oops("Wrong version of DVI output for this program");
  1114. !     offset -= 4;
  1115. !     Fseek(dvi_file, offset, 2);
  1116.       Fseek(dvi_file, sfour(dvi_file), 0);
  1117.   }
  1118.   
  1119. --- 208,227 ----
  1120.   find_postamble()
  1121.   {
  1122.       ubyte byte;
  1123.   
  1124. !     Fseek(dvi_file, (long) -4, 2);
  1125. !     while (four(dvi_file) !=
  1126. !         ((long) TRAILER << 24 | TRAILER << 16 | TRAILER << 8 | TRAILER))
  1127. !         Fseek(dvi_file, (long) -5, 1);
  1128. !     Fseek(dvi_file, (long) -5, 1);
  1129. !     for (;;) {
  1130.           byte = one(dvi_file);
  1131. !         if (byte != TRAILER) break;
  1132. !         Fseek(dvi_file, (long) -2, 1);
  1133. !     }
  1134.       if (byte != 2)
  1135.           dvi_oops("Wrong version of DVI output for this program");
  1136. !     Fseek(dvi_file, (long) -5, 1);
  1137.       Fseek(dvi_file, sfour(dvi_file), 0);
  1138.   }
  1139.   
  1140. diff -cr old/gf.c new/gf.c
  1141. *** old/gf.c    Mon May  7 18:48:26 1990
  1142. --- new/gf.c    Wed May  9 22:39:18 1990
  1143. ***************
  1144. *** 81,87 ****
  1145.   /*
  1146.    *    Find postamble.
  1147.    */
  1148. !     Fseek(GF_file, (long) -5, 2);
  1149.       for (;;) {
  1150.           ch = one(GF_file);
  1151.           if (ch != TRAILER) break;
  1152. --- 81,91 ----
  1153.   /*
  1154.    *    Find postamble.
  1155.    */
  1156. !     Fseek(GF_file, (long) -4, 2);
  1157. !     while (four(GF_file) !=
  1158. !         ((long) TRAILER << 24 | TRAILER << 16 | TRAILER << 8 | TRAILER))
  1159. !         Fseek(GF_file, (long) -5, 1);
  1160. !     Fseek(GF_file, (long) -5, 1);
  1161.       for (;;) {
  1162.           ch = one(GF_file);
  1163.           if (ch != TRAILER) break;
  1164. ***************
  1165. *** 274,285 ****
  1166.               if (paint_switch)
  1167.                   *cp |= bit_masks[count] <<
  1168.                   (BITS_PER_BMUNIT - word_weight);
  1169. ! #endif    MSBITFIRST
  1170.               word_weight -= count;
  1171.   #ifdef    MSBITFIRST
  1172.               if (paint_switch)
  1173.                   *cp |= bit_masks[count] << word_weight;
  1174. ! #endif    MSBITFIRST
  1175.               break;
  1176.               }
  1177.               else {
  1178. --- 278,289 ----
  1179.               if (paint_switch)
  1180.                   *cp |= bit_masks[count] <<
  1181.                   (BITS_PER_BMUNIT - word_weight);
  1182. ! #endif
  1183.               word_weight -= count;
  1184.   #ifdef    MSBITFIRST
  1185.               if (paint_switch)
  1186.                   *cp |= bit_masks[count] << word_weight;
  1187. ! #endif
  1188.               break;
  1189.               }
  1190.               else {
  1191. ***************
  1192. *** 287,295 ****
  1193.   #ifndef    MSBITFIRST
  1194.                   *cp |= bit_masks[word_weight] <<
  1195.                   (BITS_PER_BMUNIT - word_weight);
  1196. ! #else    MSBITFIRST
  1197.                   *cp |= bit_masks[word_weight];
  1198. ! #endif    MSBITFIRST
  1199.               cp++;
  1200.               count -= word_weight;
  1201.               word_weight = BITS_PER_BMUNIT;
  1202. --- 291,299 ----
  1203.   #ifndef    MSBITFIRST
  1204.                   *cp |= bit_masks[word_weight] <<
  1205.                   (BITS_PER_BMUNIT - word_weight);
  1206. ! #else
  1207.                   *cp |= bit_masks[word_weight];
  1208. ! #endif
  1209.               cp++;
  1210.               count -= word_weight;
  1211.               word_weight = BITS_PER_BMUNIT;
  1212. diff -cr old/patchlevel.h new/patchlevel.h
  1213. *** old/patchlevel.h    Mon May  7 18:48:28 1990
  1214. --- new/patchlevel.h    Fri May  4 21:36:00 1990
  1215. ***************
  1216. *** 1 ****
  1217. ! #define PATCHLEVEL 8
  1218. --- 1 ----
  1219. ! #define PATCHLEVEL 9
  1220. diff -cr old/pk.c new/pk.c
  1221. *** old/pk.c    Mon May  7 18:48:30 1990
  1222. --- new/pk.c    Sun May  6 18:55:30 1990
  1223. ***************
  1224. *** 255,263 ****
  1225.                 cp = ADD(g->bitmap.bits, i * bytes_wide);
  1226.   #ifndef    MSBITFIRST
  1227.                 row_bit_pos = -1;
  1228. ! #else    MSBITFIRST
  1229.                 row_bit_pos = BITS_PER_BMUNIT;
  1230. ! #endif    MSBITFIRST
  1231.             for (j = 0; j < g->bitmap.w; j++)  /* get one row */
  1232.           {
  1233.                     if (--PK_bitpos < 0)
  1234. --- 255,263 ----
  1235.                 cp = ADD(g->bitmap.bits, i * bytes_wide);
  1236.   #ifndef    MSBITFIRST
  1237.                 row_bit_pos = -1;
  1238. ! #else
  1239.                 row_bit_pos = BITS_PER_BMUNIT;
  1240. ! #endif
  1241.             for (j = 0; j < g->bitmap.w; j++)  /* get one row */
  1242.           {
  1243.                     if (--PK_bitpos < 0)
  1244. ***************
  1245. *** 267,282 ****
  1246.                       }
  1247.   #ifndef    MSBITFIRST
  1248.                     if (++row_bit_pos >= BITS_PER_BMUNIT)
  1249. ! #else    MSBITFIRST
  1250.             if (--row_bit_pos < 0)
  1251. ! #endif    MSBITFIRST
  1252.                       {
  1253.                         cp++;
  1254.   #ifndef    MSBITFIRST
  1255.                         row_bit_pos = 0;
  1256. ! #else    MSBITFIRST
  1257.                         row_bit_pos = BITS_PER_BMUNIT - 1;
  1258. ! #endif    MSBITFIRST
  1259.                       }
  1260.                     if (word & (1 << PK_bitpos))
  1261.                       *cp |= 1 << row_bit_pos;
  1262. --- 267,282 ----
  1263.                       }
  1264.   #ifndef    MSBITFIRST
  1265.                     if (++row_bit_pos >= BITS_PER_BMUNIT)
  1266. ! #else
  1267.             if (--row_bit_pos < 0)
  1268. ! #endif
  1269.                       {
  1270.                         cp++;
  1271.   #ifndef    MSBITFIRST
  1272.                         row_bit_pos = 0;
  1273. ! #else
  1274.                         row_bit_pos = BITS_PER_BMUNIT - 1;
  1275. ! #endif
  1276.                       }
  1277.                     if (word & (1 << PK_bitpos))
  1278.                       *cp |= 1 << row_bit_pos;
  1279. ***************
  1280. *** 302,313 ****
  1281.                 if (paint_switch)
  1282.               word |= bit_masks[count] <<
  1283.                 (BITS_PER_BMUNIT - word_weight);
  1284. ! #endif    MSBITFIRST
  1285.                 h_bit -= count;
  1286.                 word_weight -= count;
  1287.   #ifdef    MSBITFIRST
  1288.                 if (paint_switch) word |= bit_masks[count] << word_weight;
  1289. ! #endif    MSBITFIRST
  1290.                 count = 0;
  1291.               }
  1292.             else
  1293. --- 302,313 ----
  1294.                 if (paint_switch)
  1295.               word |= bit_masks[count] <<
  1296.                 (BITS_PER_BMUNIT - word_weight);
  1297. ! #endif
  1298.                 h_bit -= count;
  1299.                 word_weight -= count;
  1300.   #ifdef    MSBITFIRST
  1301.                 if (paint_switch) word |= bit_masks[count] << word_weight;
  1302. ! #endif
  1303.                 count = 0;
  1304.               }
  1305.             else
  1306. ***************
  1307. *** 317,325 ****
  1308.                 word |= bit_masks[h_bit] <<
  1309.   #ifndef    MSBITFIRST
  1310.                   (BITS_PER_BMUNIT - word_weight);
  1311. ! #else    MSBITFIRST
  1312.                   (word_weight - h_bit);
  1313. ! #endif    MSBITFIRST
  1314.               *cp++ = word;
  1315.               /* "output" row(s) */
  1316.               for (i = PK_repeat_count * bytes_wide /
  1317. --- 317,325 ----
  1318.                 word |= bit_masks[h_bit] <<
  1319.   #ifndef    MSBITFIRST
  1320.                   (BITS_PER_BMUNIT - word_weight);
  1321. ! #else
  1322.                   (word_weight - h_bit);
  1323. ! #endif
  1324.               *cp++ = word;
  1325.               /* "output" row(s) */
  1326.               for (i = PK_repeat_count * bytes_wide /
  1327. ***************
  1328. *** 341,349 ****
  1329.   #ifndef    MSBITFIRST
  1330.                 word |= bit_masks[word_weight] <<
  1331.                   (BITS_PER_BMUNIT - word_weight);
  1332. ! #else    MSBITFIRST
  1333.                 word |= bit_masks[word_weight];
  1334. ! #endif    MSBITFIRST
  1335.               *cp++ = word;
  1336.               word = 0;
  1337.               count -= word_weight;
  1338. --- 341,349 ----
  1339.   #ifndef    MSBITFIRST
  1340.                 word |= bit_masks[word_weight] <<
  1341.                   (BITS_PER_BMUNIT - word_weight);
  1342. ! #else
  1343.                 word |= bit_masks[word_weight];
  1344. ! #endif
  1345.               *cp++ = word;
  1346.               word = 0;
  1347.               count -= word_weight;
  1348. diff -cr old/pxl.c new/pxl.c
  1349. *** old/pxl.c    Mon May  7 18:48:30 1990
  1350. --- new/pxl.c    Thu May 10 10:42:09 1990
  1351. ***************
  1352. *** 7,15 ****
  1353.    ***/
  1354.   
  1355.   #ifndef    MSBITFIRST
  1356. - #ifndef X10
  1357. - extern    unsigned char    _reverse_byte[];    /* defined in Xlib */
  1358. - #else X10
  1359.   static    unsigned char    _reverse_byte[0x100] = {
  1360.       0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0,
  1361.       0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0,
  1362. --- 7,12 ----
  1363. ***************
  1364. *** 44,51 ****
  1365.       0x0f, 0x8f, 0x4f, 0xcf, 0x2f, 0xaf, 0x6f, 0xef,
  1366.       0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff
  1367.   };
  1368. ! #endif X10
  1369. ! #endif    MSBITFIRST
  1370.   
  1371.   static    void    read_index(), read_char();
  1372.   
  1373. --- 41,47 ----
  1374.       0x0f, 0x8f, 0x4f, 0xcf, 0x2f, 0xaf, 0x6f, 0xef,
  1375.       0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff
  1376.   };
  1377. ! #endif    /* MSBITFIRST */
  1378.   
  1379.   static    void    read_index(), read_char();
  1380.   
  1381. ***************
  1382. *** 53,63 ****
  1383.   
  1384.   static void
  1385.   read_index (fontp)
  1386. !         register struct font *fontp;
  1387.   {
  1388.       register struct glyph *g;
  1389.       register FILE *fp;
  1390. !         long font_dir_ptr;
  1391.   
  1392.       if (debug & DBG_PK)
  1393.           Printf("Reading header for PXL file %s\n", fontp->filename);
  1394. --- 49,59 ----
  1395.   
  1396.   static void
  1397.   read_index (fontp)
  1398. !     register struct font *fontp;
  1399.   {
  1400.       register struct glyph *g;
  1401.       register FILE *fp;
  1402. !     long font_dir_ptr;
  1403.   
  1404.       if (debug & DBG_PK)
  1405.           Printf("Reading header for PXL file %s\n", fontp->filename);
  1406. ***************
  1407. *** 65,75 ****
  1408.       if (four(fp = fontp->file) != 1001)
  1409.           oops("File %s has wrong PXL magic number.", fontp->filename);
  1410.       /* seek to trailer info */
  1411. !     Fseek(fp, (long) -5 * 4, 2);
  1412.       (void) four(fp);    /* checksum */
  1413.       (void) four(fp);    /* magnify */
  1414.       (void) four(fp);    /* design size */
  1415. !         font_dir_ptr = sfour(fp) * 4;
  1416.       (void) four(fp);    /* pxl id word */
  1417.       /* seek to font directory */
  1418.       Fseek(fp, font_dir_ptr, 0);
  1419. --- 61,74 ----
  1420.       if (four(fp = fontp->file) != 1001)
  1421.           oops("File %s has wrong PXL magic number.", fontp->filename);
  1422.       /* seek to trailer info */
  1423. !     Fseek(fp, (long) -4, 2);
  1424. !     while (four(fp) != 1001)
  1425. !         Fseek(fp, (long) -5, 1);
  1426. !     Fseek(fp, (long) -5 * 4, 1);
  1427.       (void) four(fp);    /* checksum */
  1428.       (void) four(fp);    /* magnify */
  1429.       (void) four(fp);    /* design size */
  1430. !     font_dir_ptr = sfour(fp) * 4;
  1431.       (void) four(fp);    /* pxl id word */
  1432.       /* seek to font directory */
  1433.       Fseek(fp, font_dir_ptr, 0);
  1434. ***************
  1435. *** 130,136 ****
  1436.       register int i, j;
  1437.   #ifndef    BMLONG
  1438.       register int padding_length;
  1439. ! #endif    BMLONG
  1440.   
  1441.       bitmap = &fontp->glyph[ch].bitmap;
  1442.           /* in file, bitmap rows are multiples of 32 bits wide */
  1443. --- 129,135 ----
  1444.       register int i, j;
  1445.   #ifndef    BMLONG
  1446.       register int padding_length;
  1447. ! #endif
  1448.   
  1449.       bitmap = &fontp->glyph[ch].bitmap;
  1450.           /* in file, bitmap rows are multiples of 32 bits wide */
  1451. ***************
  1452. *** 138,144 ****
  1453.       ptr = (BMUNIT *) bitmap->bits;
  1454.   #ifndef    BMLONG
  1455.       padding_length = 3 - (bitmap->bytes_wide + 3) % 4;
  1456. ! #endif    BMLONG
  1457.       for (i = bitmap->h; i > 0; --i) {
  1458.           for (j = bitmap->bytes_wide; j > 0; j -= BYTES_PER_BMUNIT) {
  1459.   #ifndef    MSBITFIRST
  1460. --- 137,143 ----
  1461.       ptr = (BMUNIT *) bitmap->bits;
  1462.   #ifndef    BMLONG
  1463.       padding_length = 3 - (bitmap->bytes_wide + 3) % 4;
  1464. ! #endif
  1465.       for (i = bitmap->h; i > 0; --i) {
  1466.           for (j = bitmap->bytes_wide; j > 0; j -= BYTES_PER_BMUNIT) {
  1467.   #ifndef    MSBITFIRST
  1468. ***************
  1469. *** 149,170 ****
  1470.   #ifdef    BMLONG
  1471.           *ptr |= _reverse_byte[one(fp)] << 16;
  1472.           *ptr |= _reverse_byte[one(fp)] << 24;
  1473. ! #endif    BMLONG
  1474. ! #else    MSBITFIRST
  1475.           *ptr = 0;
  1476.   #ifdef    BMLONG
  1477.           *ptr |= one(fp) << 24;
  1478.           *ptr |= one(fp) << 16;
  1479. ! #endif    BMLONG
  1480.   #if    BYTES_PER_BMUNIT > 1
  1481.           *ptr |= one(fp) << 8;
  1482.   #endif
  1483.           *ptr |= one(fp);
  1484. ! #endif    MSBITFIRST
  1485.           ++ptr;
  1486.           }
  1487.   #ifndef    BMLONG
  1488.           for (j = padding_length; j > 0; --j) (void) one(fp);
  1489. ! #endif    BMLONG
  1490.       }
  1491.   }
  1492. --- 148,169 ----
  1493.   #ifdef    BMLONG
  1494.           *ptr |= _reverse_byte[one(fp)] << 16;
  1495.           *ptr |= _reverse_byte[one(fp)] << 24;
  1496. ! #endif
  1497. ! #else    /* MSBITFIRST */
  1498.           *ptr = 0;
  1499.   #ifdef    BMLONG
  1500.           *ptr |= one(fp) << 24;
  1501.           *ptr |= one(fp) << 16;
  1502. ! #endif
  1503.   #if    BYTES_PER_BMUNIT > 1
  1504.           *ptr |= one(fp) << 8;
  1505.   #endif
  1506.           *ptr |= one(fp);
  1507. ! #endif    /* MSBITFIRST */
  1508.           ++ptr;
  1509.           }
  1510.   #ifndef    BMLONG
  1511.           for (j = padding_length; j > 0; --j) (void) one(fp);
  1512. ! #endif
  1513.       }
  1514.   }
  1515. diff -cr old/pxl_open.c new/pxl_open.c
  1516. *** old/pxl_open.c    Mon May  7 18:48:32 1990
  1517. --- new/pxl_open.c    Tue May  8 22:34:36 1990
  1518. ***************
  1519. *** 36,42 ****
  1520.   
  1521.   #ifndef X10
  1522.   #include <X11/Xos.h>    /* same as below */
  1523. ! #else X10
  1524.   #ifdef    SYSV
  1525.   #include <string.h>
  1526.   #define index strchr
  1527. --- 36,42 ----
  1528.   
  1529.   #ifndef X10
  1530.   #include <X11/Xos.h>    /* same as below */
  1531. ! #else    /* X10 */
  1532.   #ifdef    SYSV
  1533.   #include <string.h>
  1534.   #define index strchr
  1535. ***************
  1536. *** 44,72 ****
  1537.   #else /* SYSV */
  1538.   #include <strings.h>
  1539.   #endif /* SYSV */
  1540. ! #endif X10
  1541.   
  1542.   #include <errno.h>
  1543.   extern    int    errno;
  1544.   
  1545.   #ifndef    VMS
  1546.   #define    PATH_SEP    ':'
  1547.   #define    DEFAULT_TAIL    "/%f.%d%p"
  1548. ! #else    VMS
  1549.   #include <string.h>
  1550.   #define    index    strchr
  1551.   #define    rindex    strrchr
  1552.   #define    PATH_SEP    '/'
  1553.   #define    DEFAULT_TAIL    ":%f.%d%p"
  1554. ! #endif    VMS
  1555.   
  1556.   #ifndef    OPEN_MODE
  1557.   #ifndef    VMS
  1558.   #define    OPEN_MODE    "r"
  1559. ! #else    VMS
  1560.   #define    OPEN_MODE    "r", "ctx=stm"
  1561. ! #endif    VMS
  1562. ! #endif    OPEN_MODE
  1563.   
  1564.   extern    int    n_fonts_left;
  1565.   extern    char    *alt_font;
  1566. --- 44,76 ----
  1567.   #else /* SYSV */
  1568.   #include <strings.h>
  1569.   #endif /* SYSV */
  1570. ! #endif    /* X10 */
  1571.   
  1572.   #include <errno.h>
  1573.   extern    int    errno;
  1574.   
  1575. + /*
  1576. +  *    If you think you have to change DEFAULT_TAIL, then you haven't read the
  1577. +  *    documentation closely enough.
  1578. +  */
  1579.   #ifndef    VMS
  1580.   #define    PATH_SEP    ':'
  1581.   #define    DEFAULT_TAIL    "/%f.%d%p"
  1582. ! #else    /* VMS */
  1583.   #include <string.h>
  1584.   #define    index    strchr
  1585.   #define    rindex    strrchr
  1586.   #define    PATH_SEP    '/'
  1587.   #define    DEFAULT_TAIL    ":%f.%d%p"
  1588. ! #endif    /* VMS */
  1589.   
  1590.   #ifndef    OPEN_MODE
  1591.   #ifndef    VMS
  1592.   #define    OPEN_MODE    "r"
  1593. ! #else
  1594.   #define    OPEN_MODE    "r", "ctx=stm"
  1595. ! #endif
  1596. ! #endif    /* OPEN_MODE */
  1597.   
  1598.   extern    int    n_fonts_left;
  1599.   extern    char    *alt_font;
  1600. ***************
  1601. *** 84,90 ****
  1602.   
  1603.   #ifdef    sun
  1604.   char    *sprintf();
  1605. ! #endif    sun
  1606.   
  1607.   char    *malloc(), *getenv();
  1608.   double    atof();
  1609. --- 88,94 ----
  1610.   
  1611.   #ifdef    sun
  1612.   char    *sprintf();
  1613. ! #endif
  1614.   
  1615.   char    *malloc(), *getenv();
  1616.   double    atof();
  1617. diff -cr old/tpic.c new/tpic.c
  1618. *** old/tpic.c    Mon May  7 18:48:34 1990
  1619. --- new/tpic.c    Sun May  6 19:02:04 1990
  1620. ***************
  1621. *** 29,35 ****
  1622.   #ifndef lint
  1623.   static char *rcsid =
  1624.     "$Header: dvi_draw.c,v 1.1 88/10/20 00:10:09 xwindows Exp $";
  1625. ! #endif lint
  1626.   
  1627.   #include <math.h>
  1628.   #include <stdio.h>
  1629. --- 29,35 ----
  1630.   #ifndef lint
  1631.   static char *rcsid =
  1632.     "$Header: dvi_draw.c,v 1.1 88/10/20 00:10:09 xwindows Exp $";
  1633. ! #endif
  1634.   
  1635.   #include <math.h>
  1636.   #include <stdio.h>
  1637.  
  1638. dan
  1639. ----------------------------------------------------
  1640. O'Reilly && Associates   argv@sun.com / argv@ora.com
  1641. Opinions expressed reflect those of the author only.
  1642.